home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / wgdb-42.lha / wgdb-4.2 / gdb / munch < prev    next >
Text File  |  1992-09-11  |  896b  |  32 lines

  1. #!/bin/sh
  2.  
  3. # create an initialization procedure from a list of .o files
  4.  
  5. echo '/* Do not modify this file.  It is created automatically by "munch". */'
  6. echo 'void initialize_all_files () {'
  7.  
  8. NMOPT=""
  9. case $1 in
  10. MUNCH_NM=*)
  11.     MUNCH_NM=`echo $1 | sed 's/MUNCH_NM=//'`; shift ;;
  12. -*)
  13.     NMOPT=$1; shift ;;
  14. esac
  15.  
  16. # make it easy to use a different nm, e.g. for cross-developing
  17.  
  18. MUNCH_NM="${MUNCH_NM-nm} $NMOPT"
  19. if test "`$MUNCH_NM main.o | egrep 'T _?main$'`" = "" ; then
  20.     # System V style nm
  21.     shift;
  22.     $MUNCH_NM $* | egrep '^(.*[^a-zA-Z_]_|_)_?initialize_.*\.text' | \
  23.     sed -e 's/^.*\(_initialize_[a-zA-Z0-9_]*\)[^a-zA-Z0-9_].*$/   {extern void \1 (); \1 ();}/'
  24. else
  25.     # BSD style nm
  26.     # We now accept either text or data symbols, since the RT/PC uses data.
  27.     $MUNCH_NM -p $* | egrep '[TD] *_?_initialize_' | \
  28.     sed -e 's/^.*[TD] *_*\(.*\)/    {extern void _\1 (); _\1 ();}/'
  29. fi
  30.  
  31. echo '}'
  32.